Conversation
…cts existing sessions; show session history on join in split panes
There was a problem hiding this comment.
Pull Request Overview
This PR restores global tabs functionality and improves pane stability in the UI by making multi-pane mode optional rather than forced. The changes address several UX regressions related to tab visibility, session management, and pane behavior.
Key changes:
- Remove forced multi-pane mode activation, making it respect user preferences
- Keep global tabs visible in all modes (single pane and tiled)
- Add session buffer replay when joining existing sessions in split panes
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/public/style.css | Removes CSS rules that forcibly hid global tabs in tiled mode |
| src/public/panes.js | Adds session buffer replay on join and improves pane "+" button behavior |
| src/public/app.js | Removes auto-enabling of multi-pane mode to respect user preferences |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| const joined = msg.outputBuffer.join(''); | ||
| const filtered = joined.replace(/\x1b\[\[?[IO]/g, ''); |
There was a problem hiding this comment.
The regex pattern /\x1b\[\[?[IO]/g uses a magic regular expression without explanation. Consider adding a comment explaining what ANSI escape sequences are being filtered, or extract this to a named constant like ANSI_IO_FILTER_REGEX.
| // Shift-click to create a new session directly; normal click opens session picker | ||
| if (e.shiftKey) { | ||
| this.app?.showFolderBrowser?.(); | ||
| } else { | ||
| this.openAddMenu(idx, btn); | ||
| } |
There was a problem hiding this comment.
The openAddMenu method is called but not defined in the visible code context. Verify that this method exists in the PaneManager class, as calling an undefined method will result in a runtime error.
This PR addresses multiple UX regressions:
This resolves: